package cn.regexp.service;

import cn.regexp.domain.ShopConsignee;
import cn.regexp.domain.ShopOrder;
import cn.regexp.domain.ShopOrderGoods;
import cn.regexp.domain.ShopUser;
import cn.regexp.query.OrderQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * order 服务接口层
 */
public interface IOrderService extends IService<ShopOrder> {
    /**
     * 创建订单
     * @param goods 订单商品信息
     * @param consignee 收货人信息
     * @param type 订单类型
     * @param shopUser 下单用户
     * @return 订单对象
     */
    ShopOrder createOrder(List<ShopOrderGoods> goods, ShopConsignee consignee, Integer type, ShopUser shopUser);

    /**
     * 查询订单信息
     * @param qo 查询条件
     * @return 订单信息列表
     */
    IPage<ShopOrder> queryOrder(OrderQuery qo);

    /**
     * 根据订单编号查询订单
     *
     * @param orderSn 订单编号
     * @return 订单
     */
    ShopOrder getOrderByOrderSn(String orderSn);
}
